/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GestionTuplas;

import java.util.Iterator; 
import java.util.List; 
import java.util.ArrayList;

/**
 *
 * @author Jesus
 */
public class Relacion implements java.io.Serializable, Iterable<Atributo> { 
    /** lista de atributos de la relación. */ 
    private List<Atributo> atributos;
    /** Constructor por Default de una relación. */ 
    public Relacion() { 
        atributos = new ArrayList<Atributo>(); 
    }
    
    public Relacion(List<Atributo> atributos) { 
        this.atributos = new ArrayList<Atributo>(atributos); 
    }
    
    protected void adicionarAtributo(Atributo atributo) { 
        atributos.add(atributo); 
    }
    protected void eliminarrAtributo(Atributo atributo) { 
        atributos.remove(atributo); 
    }
    
    public int getNumeroDeAtributos() { 
        return atributos.size(); }
    
    /*implementar metodos para cambiar tipo de atributos*/
    
    
    @Override 
    public Iterator<Atributo> iterator() { 
        return atributos.iterator(); 
    }
    public Atributo getAtributo(int i) { 
        return atributos.get(i); 
    } 
    public int getIndiceAtributo(String atr) { 
        int i = 0; for (Atributo atributo : atributos) { 
            if (atributo.getNombre().equals(atr)) { 
                return i; } 
        } return -1; } // getIndiceAtributo()
    
    @Override public String toString() { 
        StringBuilder sb = new StringBuilder(); 
        sb.append("{"); 
        for (int i = 0; i < getNumeroDeAtributos() - 1; i++) { 
            sb.append(getAtributo(i)).append(", ");
        } 
        sb.append(getAtributo(getNumeroDeAtributos() - 1)).append("}"); return sb.toString(); } // toString() }
}